'use strict';
const db = uniCloud.database();
const userCollection = db.collection('uni-id-users');

exports.main = async (event, context) => {
    console.log('收到请求参数：', event);
    
    try {
        const { 
            username,
            password,
            email,
            mobile,
            nickname,
            gender,
            avatar,
            status = 1,  // 默认状态为1（正常）
            register_date = Date.now(),  // 注册时间
            register_ip = context.CLIENTIP  // 注册IP
        } = event;
        
        // 基本参数验证
        if (!username) {
            return {
                code: 400,
                message: '用户名是必填项'
            };
        }
        
        // 检查用户名是否已存在
        const existUser = await userCollection.where({
            username: username
        }).get();
        
        if (existUser.data && existUser.data.length > 0) {
            return {
                code: 400,
                message: '用户名已存在'
            };
        }
        
        // 构建用户数据
        const userData = {
            username,
            password: password || '123456', // 如果没有传密码，默认设置为123456
            email: email || '',
            mobile: mobile || '',
            nickname: nickname || username, // 如果没有昵称，使用用户名
            gender: gender || 0, // 0: 未知, 1: 男, 2: 女
            avatar: avatar || '',
            status: status,
            register_date: register_date,
            register_ip: register_ip,
            last_login_date: register_date, // 首次注册时，最后登录时间等于注册时间
            last_login_ip: register_ip
        };
        
        // 添加用户数据
        const addResult = await userCollection.add(userData);
        
        // 返回结果
        return {
            code: 0,
            message: '添加用户成功',
            data: {
                id: addResult.id,
                ...userData
            }
        };
        
    } catch (error) {
        console.error('添加用户失败：', error);
        return {
            code: 500,
            message: '服务器内部错误',
            error: error.message
        };
    }
}; 